This specification relates to distribution of cryptographic keys and, in particular, distribution of cryptographic keys for use in communication with virtual machines in a cloud computing environment.
A cryptographic key (or “key”) is a piece of information that determines the functional output of a cryptographic algorithm or cipher. In encryption, a key specifies the particular transformation of plaintext into ciphertext, or vice versa during decryption. Keys can also be used in a network protocol for secure data communication, remote shell services, or command execution between two networked computers via a secure channel over an insecure network such as the Internet.
Cloud computing is network-based computing in which typically large collections of servers housed in data centers or “server farms” provides computational resources and data storage as needed to remote end users. Some cloud computing services allow end users to run user-provided server software applications (e.g., e-commerce server application, web server, or file server) in the cloud. Some other cloud computing services provide access to software applications such as word processors and other commonly used applications to end users who interface with the applications through web browsers or other client-side software. Users' electronic data files are usually stored in the server farm rather than on the users' computing devices. Maintaining software applications and user data on the server farm may simplify management of end user computing devices. Some cloud computing services allow end users to execute software applications in virtual machines.